package org.platon.template;

import ai.platon.pulsar.context.PulsarContexts;
import ai.platon.pulsar.dom.FeaturedDocument;
import ai.platon.pulsar.persist.WebPage;
import ai.platon.pulsar.session.PulsarSession;
import com.google.gson.Gson;
import org.jsoup.nodes.Element;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

import static org.platon.template.XHS_DESC.getDesc;

public class XHS {
    public static void main(String[] args) {
        // 创建Pulsar Session对象
        PulsarSession session = PulsarContexts.createSession();
// 定义URL
        String url = "https://www.xiaohongshu.com/explore";
// 加载页面，如果页面已过期或首次加载，则从Web获取
        WebPage page = session.load(url, "-expires 1d -refresh -parse ");
// 将页面内容解析为Jsoup文档对象
        FeaturedDocument document = session.parse(page, false);
        System.out.printf("document = " + document);
// 加载所有指定链接的页面
        List<WebPage> pages = session.loadOutPages(url, "-expires 1d -itemExpires 7d -outLink a[href~=explore]"); // a[href~=item] 是 CSS 选择器语法，它表示选择所有 a 标签中 href 属性值中包含单词 item 的元素。
// 输出文档对象的标题
        System.out.println("== document");
        System.out.println(document.getTitle());
        Element ele = document.selectFirstOrNull("title");
        if (ele != null) {
            System.out.println(ele.text());
        }

// 输出加载的页面URL列表
        List<String> descList = new java.util.ArrayList<>();
        System.out.println("== pages");
        System.out.println(pages.stream().map(WebPage::getUrl).collect(Collectors.toList()));
        //不要用lambda表达式
        System.out.println("pagesize = " + pages.size());
        pages.forEach(page1 ->{
            System.out.println(page1.getUrl());
            descList.add(getDesc(page1.getUrl()));
        });
        // 输出加载的页面的商品详情信息
        System.out.println("== descList");
        System.out.println(descList);
    }
}
